package com.zpark.se.io.file;

import java.io.File;
import java.io.IOException;
import java.util.Arrays;

/**
 * 案例：
 *      使用file类操作文件
 *      path：src/com/zpark/se/io/file/f/a/b/c/d/name.txt
 *      1、判断文件是否在，如果文件不存在，则判断目录是否存在，不存在则创建
 *      2、如果文件存在，则删除目录f
 */
public class Demo05 {
    public static void main(String[] args) throws IOException {
        // 声明文件的路径
        String path = "src/com/zpark/se/io/file/f/a/b/c/d/name.txt";
        // 创建file对象
        File f = new File(path);
        // 判断文件是否存在
        if (f.exists()) {
            // 删除f目录
            String src = "src/com/zpark/se/io/file/f";
            // 创建file对象
            File f1 = new File(src);
            // 递归删除f目录
            deleteFile(f1);
        } else {
            // 文件不存在，则创建
            // 获取当前文件的父文件对象
            File parentFile = f.getParentFile();
            // 判断父路径文件对象是否存在
            if (!parentFile.exists()) {
                // 父路径文件对象不存在，则创建父路径文件对象
                parentFile.mkdirs();
            }
            // 创建文件
            f.createNewFile();
        }
    }

    private static void deleteFile(File f) {
        System.out.println(f);
        // 获取文件的子文件对象数组
        File[] fs = f.listFiles();
        // 判断文件文件是否为空
        if (fs == null || fs.length == 0) {
            // 删除文件
            f.delete();
        }else {
            for (File file : fs) {
                // 递归删除子目录
                deleteFile(file);
            }
        }
    }
}
